import { useUserStore } from '@/store';

/**
 * 获取常见状态码对应的中文信息：https://www.flysnow.org/tools/table/http-status-codes/
 * @param status
 * @returns
 */
export const getStatusMessage = (status: number | string): string => {
    let msg = '';

    switch (status) {
        case 400:
            msg = '请求错误(400)';
            break;
        case 401:
            // 未授权，清除token信息并跳转登录页,并且记录当前页面，以便登录成功后跳转回来
            useUserStore.getState().updateToken('');
            window.location.hash = '#/login?callback=' + encodeURIComponent(location.href);
            msg = '未授权(401),请先登录';
            break;
        case 403:
            msg = '无权限，拒绝访问(403)';
            break;
        case 404:
            msg = '资源不存在(404)';
            break;
        case 405:
            msg = '请求方法未允许(405)';
            break;
        case 408:
            msg = '请求超时(408)';
            break;
        case 500:
            msg = '服务器错误(500)';
            break;
        case 501:
            msg = '网络未实现(501)';
            break;
        case 502:
            msg = '网络错误(502)';
            break;
        case 503:
            msg = '服务不可用(503)';
            break;
        case 504:
            msg = '网络超时(504)';
            break;
        case 505:
            msg = 'http版本不支持该请求(505)';
            break;
        default:
            msg = `连接出错(${status})!`;
    }
    return msg;
};
